package snmpagent;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;



/**
 * @author jquinterob
 * @version 1.0
 * @created 01-oct-2011 09:09:30 a.m.
 */
public class Dao {

    ejecutorSQLAvanzado ejeSQLAvanzado = new ejecutorSQLAvanzado("jdbc:odbc:cursoRedes","login","password");
	public Dao(){

	}

	public void finalize() throws Throwable {

	}
	/**
	 * 
	 * @param grupo
	 */
	
	public boolean almacenarLogBD(String cedula, String tipoOperacion, String estadoOperacion){
		
        if(ejeSQLAvanzado.conectar()){
            ejeSQLAvanzado.ejecutarActualizacion("insert into Log(Cedula_Usuario, Tipo_operacion, Estado_Operacion,fecha) values ('" + cedula + "','" + tipoOperacion+ "','" + estadoOperacion + "',now())");
            ejeSQLAvanzado.cerrarConexion();
        }else{
            System.out.println("No se pudo conectar");
        }
        
        return true;
	}

	/**
	 * 
	 * @param codigo
	 */
	
	public void actualizarDatos(){
            actualizarUsuarioRegistrados();
            actualizarUsuarioAddModInf();
            actualizarCnxAtendidas();
            actualizarUltimaOper();
            actualizarUndsAcademicas();
            actualizarGrupoInv();
            actualizarPryEjecucion();
            actualizarUsuarioAddModInfLog();
	}

        public boolean actualizarUsuarioRegistrados(){
            try{
            if(ejeSQLAvanzado.conectar()){
                    ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select count(cedula) as num_usuarios from Usuario");
                    if(rs.next()){
                        ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                                " set descripcion='" + rs.getString("num_usuarios") + "'" +
                                " where id = '13612410'");
                    }else{

                    }
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }
         public boolean actualizarUsuarioAddModInf(){
            try{
            if(ejeSQLAvanzado.conectar()){
                    ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select count(cedula) as num_usuarios from Usuario where privilegios='E'");
                    if(rs.next()){
                        ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                                " set descripcion='" + rs.getString("num_usuarios") + "'" +
                                " where id = '13612411'");
                    }else{

                    }
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }
         public boolean actualizarCnxAtendidas(){
            try{
            if(ejeSQLAvanzado.conectar()){
                    ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select count(id_log) as valor from log where tipo_operacion='Conexion'");
                    if(rs.next()){
                        ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                                " set descripcion='" + rs.getString("valor") + "'" +
                                " where id = '13612412'");
                    }else{

                    }
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }

	/**
	 * 
	 * @param ua
	 */
    public boolean actualizarUltimaOper(){
            try{
            if(ejeSQLAvanzado.conectar()){
                    ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select top 1 tipo_operacion as valor from log order by fecha desc");
                    if(rs.next()){
                        ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                                " set descripcion='" + rs.getString("valor") + "'" +
                                " where id = '13612413'");
                    }else{

                    }
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }
    public boolean actualizarUndsAcademicas(){
            try{
            if(ejeSQLAvanzado.conectar()){
                    ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select count(codigo_unidad_academica) as valor from unidad_academica");
                    if(rs.next()){
                        ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                                " set descripcion='" + rs.getString("valor") + "'" +
                                " where id = '13612414'");
                    }else{

                    }
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }
    public boolean actualizarGrupoInv(){
            try{
            if(ejeSQLAvanzado.conectar()){
                    ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select count(codigo_grupo) as valor from grupo_investigacion");
                    if(rs.next()){
                        ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                                " set descripcion='" + rs.getString("valor") + "'" +
                                " where id = '13612415'");
                    }else{

                    }
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }

    public boolean actualizarPryEjecucion(){
            try{
            if(ejeSQLAvanzado.conectar()){
                    ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select count(titulo_proyecto) as valor from Proyecto where estado_Proyecto='E'");
                    if(rs.next()){
                        ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                                " set descripcion='" + rs.getString("valor") + "'" +
                                " where id = '13612416'");
                    }else{

                    }
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }
    public boolean actualizarUsuarioAddModInfLog(){
            try{
            if(ejeSQLAvanzado.conectar()){
                    ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select count(id_log) as valor from log where fecha>=(select ultima_modificacion from MIB where id='13612417')");
                    if(rs.next()){
                        ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                                " set descripcion='" + rs.getString("valor") + "'" +
                                " where id = '13612417'");
                    }else{

                    }
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }
    public String consultarMIB(String id){
        String dato= new String();
        try {
            if(ejeSQLAvanzado.conectar()){
                ResultSet rs = ejeSQLAvanzado.ejecutarConsultaRs("select * from MIB where id='"+ id + "'");
                if (rs.next()) {
                    dato = rs.getString("descripcion");
                }
                ejeSQLAvanzado.cerrarConexion();
            }else{
                System.out.println("No se pudo conectar");
            }
        } catch (SQLException ex) {
            Logger.getLogger(Dao.class.getName()).log(Level.SEVERE, null, ex);
        }
		return dato;
	}
    public boolean actualizarMIB(){
           Date now= new Date();
            try{
            if(ejeSQLAvanzado.conectar()){
                    ejeSQLAvanzado.ejecutarActualizacion("update MIB " +
                    " set descripcion='0',ultima_modificacion=now() where id = '13612417'");
                    ejeSQLAvanzado.cerrarConexion();
                }else{
                    System.out.println("No se pudo conectar");
                }

                return true;
            }catch(Exception e){

            }
                    return false;
       }
  
}//end Dao
